home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / taropyon / silib / inc / sifts.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-16  |  3.7 KB  |  125 lines

  1. /*************************************************************************
  2. *    "sisbar.h"
  3. *-------------------------------------------------------------------------
  4. *    Font library
  5. *                                            Copyright (c) 1993, TaroPYON
  6. *************************************************************************/
  7.  
  8. #ifndef    _SIFTS_H
  9. #define    _SIFTS_H
  10.  
  11. #ifndef    _SIDEFS_H
  12. #    include    <sidefs.h>
  13. #endif
  14.  
  15. typedef unsigned int    FTSID_T;
  16.  
  17. typedef struct _ftsgaiji_t
  18. {
  19.     struct _ftsgaiji_t *next;
  20.     unsigned short        no;
  21.     unsigned short        code;
  22.     short                xs, ys;    /* フォントの大きさ    */
  23.     size_t                siz;
  24.     char               *ptn;    /* フォントパターン    */
  25. } FTSGAIJI_T;
  26.  
  27. #define    FTSGAIJI_NO_MAX    (188*8)
  28. #define    FTSGAIJI_HASH_MAX    (16)
  29.  
  30. typedef    struct _ftsdat_t
  31. {
  32.     struct _ftsdat_t    *next;
  33.     FTSID_T                id;
  34.     int                    fntXs, fntYs;
  35.     int                    (*getdatFunc)(int, char **,int *,int *);
  36.                                         /* パターン取得    */
  37.     int                    (*putcFunc)(POINT_T *, int, int, int);
  38.                                         /* 1文字出力    */
  39.     int                    (*putsFunc)(POINT_T *, int, int, CONST char *);
  40.                                         /* 1文字出力    */
  41.     int                    att;            /* 属性            */
  42.     unsigned int        seg;            /* セグメント    */
  43.     void               *adr;            /* アドレス        */
  44.  
  45.     int                    numtbl;            /* 外字テーブル数        */
  46.     FTSGAIJI_T          **gaitbl;            /* 外字ハッシュテーブル    */
  47. } FTSDAT_T;
  48.  
  49. typedef    struct
  50. {
  51.     FTSDAT_T   *ftsDat;    /* 現在のフォントデータ    */
  52.  
  53.     int            fntNum;        /* フォントの数            */
  54.     FTSDAT_T   *ftsTop;
  55.  
  56.     FTSDAT_T    *ftsSt1;    /* 標準フォント(16x16)        */
  57.     FTSDAT_T    *ftsSt2;    /* 標準フォント(16x16)太    */
  58.     FTSDAT_T    *ftsSl1;    /* 標準フォント(16x12)        */
  59.     FTSDAT_T    *ftsSl2;    /* 標準フォント(16x12)太    */
  60.     FTSDAT_T    *ftsSh1;    /* 標準フォント(16x 8)        */
  61.     FTSDAT_T    *ftsSh2;    /* 標準フォント(16x 8)太    */
  62.     FTSDAT_T    *ftsSs1;    /* 標準フォント(12x12)        */
  63.     FTSDAT_T    *ftsSs2;    /* 標準フォント(12x12)        */
  64. } SIFTS_T;
  65.  
  66. extern    SIFTS_T    *SiFts;
  67.  
  68. #define    FTS_PUTC(_ftsDat,_code,_x,_y,_col,_bac)                \
  69. {    POINT_T    _point;                                            \
  70.     _point.x = (_x);                                        \
  71.     _point.y = (_y);                                        \
  72.     ((_ftsDat)->putcFunc)(&_point,(_col),(_bac),(_code));    \
  73. }
  74. #define    FTS_PUTS(_ftsDat,_str,_x,_y,_col,_bac)                \
  75. {    POINT_T    _point;                                            \
  76.     _point.x = (_x);                                        \
  77.     _point.y = (_y);                                        \
  78.     ((_ftsDat)->putsFunc)(&_point,(_col),(_bac),(_str));    \
  79. }
  80.  
  81. extern FTSDAT_T       *Rom16x16;
  82. extern FTSDAT_T       *Rom16x12;
  83. extern FTSDAT_T       *Rom16x08;
  84. extern FTSDAT_T       *Rom12x12;
  85.  
  86. extern FTSDAT_T       *Fnt16x16;
  87. extern FTSDAT_T       *Fnt16x12;
  88. extern FTSDAT_T       *Fnt16x08;
  89. extern FTSDAT_T       *Fnt12x12;
  90. extern FTSDAT_T       *Fnt12x08;
  91.  
  92. extern int            FTS_init(void);
  93. extern void            FTS_term(void);
  94. extern FTSID_T        FTS_getNewID( FTSDAT_T *ftsDat );
  95. extern int            FTS_linkFont( FTSDAT_T *ftsDat );
  96. extern void            FTS_unlinkFont( FTSDAT_T *ftsDat );
  97. extern int            FTS_chkPutSize( FTSDAT_T *ftsDat, int *xs, int *ys, CONST char *s );
  98.  
  99. extern int            FtsPutcFunc( FTSDAT_T *ftsDat, POINT_T *point, int col, int bac, int code );
  100. extern int            FtsPutsFunc( FTSDAT_T *ftsDat, POINT_T *point, int col,int bac, CONST char *s );
  101.  
  102. extern int            FTS_rom16x16_init(void);
  103. extern void            FTS_rom16x16_term(void);
  104. extern int            FTS_rom16x12_init(void);
  105. extern void            FTS_rom16x12_term(void);
  106. extern int            FTS_rom16x08_init(void);
  107. extern void            FTS_rom16x08_term(void);
  108. extern int            FTS_rom12x12_init(void);
  109. extern void            FTS_rom12x12_term(void);
  110.  
  111. extern int            FTS_fnt16x16_init(void);
  112. extern void            FTS_fnt16x16_term(void);
  113. extern int            FTS_fnt16x12_init(void);
  114. extern void            FTS_fnt16x12_term(void);
  115. extern int            FTS_fnt16x08_init(void);
  116. extern void            FTS_fnt16x08_term(void);
  117. extern int            FTS_fnt12x12_init(void);
  118. extern void            FTS_fnt12x12_term(void);
  119. extern int            FTS_fnt12x08_init(void);
  120. extern void            FTS_fnt12x08_term(void);
  121.  
  122. extern void            SI_makeFnt12( unsigned char *buf12, int jis );
  123.  
  124. #endif
  125.